"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Ligações LZ C++ React Native para um algoritmo de compactação extremamente rápido

Ligações LZ C++ React Native para um algoritmo de compactação extremamente rápido

Publicado em 2024-11-08
Navegar:814

LZ C   React Native bindings for an extremely fast compression algorithm

Ultimamente tenho mergulhado em JSI e C e, como resultado, consegui construir um pequeno pacote chamado react-native-lz4. É uma biblioteca para compactação rápida de arquivos em React Native usando o algoritmo LZ4 escrito em C.

Ainda é experimental, pois ainda estou aprimorando o tratamento de erros e estendendo sua API, mas já pode ser usado (com cautela!)

Pacote: https://github.com/mateoguzmana/react-native-lz4
Você pode aprender mais sobre o LZ4 em seu site: https://lz4.org/

O pacote suporta arquiteturas antigas e novas e atualmente expõe duas funções principais para compactar e descompactar qualquer tipo de arquivo.

Exemplo básico:


import { compressFile, decompressFile } from 'react-native-lz4';

function onProgress(processedSize: number, totalSize: number) {
  // e.g. { processedSize: 50, totalSize: 100, progress: '50%' }
  console.log({
    processedSize,
    totalSize,
    progress: `${Math.round((processedSize / totalSize) * 100)}%`,
  });
}

const compressionResult = await compressFile(
  'path/to/file',
  'path/to/output',
  onProgress
);
const decompressionResult = await decompressFile(
  'path/to/file',
  'path/to/output',
  onProgress
);

console.log(compressionResult);
// { success: true, message: 'File compressed successfully', originalSize: 100, finalSize: 50 }

console.log(decompressionResult);
// { success: true, message: 'File decompressed successfully', originalSize: 50, finalSize: 100 }


Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/mateoguzmana/lz4-c-react-native-bindings-for-an-extremely-fast-compression-algorithm-6jh?1 Se houver alguma violação, entre em contato com study_golang @163.com excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3